home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / zeroboard_flaws2.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  56 lines

  1. #
  2. # This script was written by David Maciejak <david dot maciejak at kyxar dot fr>
  3. # Ref:  Jeremy Bae  - STG Security
  4. #
  5. # This script is released under the GNU GPL v2
  6.  
  7. if(description)
  8. {
  9.   script_id(16178);
  10.   script_bugtraq_id(12258);
  11.   if ( defined_func("script_xref") ) script_xref(name:"OSVDB", value:"12925");
  12.   script_version("$Revision: 1.1 $");
  13.   
  14.   script_name(english:"ZeroBoard flaws (2)");
  15.  
  16.  desc["english"] = "
  17. The remote host runs ZeroBoard, a web BBS application written in PHP.
  18.  
  19. The remote version of this CGI is vulnerable to multiple flaws which
  20. may allow an attacker to execute arbitrary PHP commands on the remote host
  21. by including a PHP file hosted on a third party server, or to read arbitrary 
  22. files with the privileges of the remote web server.
  23.  
  24. Solution: Upgrade to the latest version of this software
  25. Risk factor : Medium";
  26.  
  27.   script_description(english:desc["english"]);
  28.   script_summary(english:"Checks ZeroBoard flaws");
  29.   script_category(ACT_GATHER_INFO);
  30.   script_copyright(english:"This script is Copyright (C) 2005 David Maciejak");
  31.   script_family(english:"CGI abuses");
  32.   script_require_ports("Services/www", 80);
  33.   script_dependencie("http_version.nasl");
  34.   exit(0);
  35. }
  36.  
  37. #the code
  38.  
  39. include("http_func.inc");
  40. include("http_keepalive.inc");
  41.  
  42. port = get_http_port(default:80);
  43. if ( ! get_port_state(port))exit(0);
  44. if ( ! can_host_php(port:port) ) exit(0);
  45.  
  46. foreach d (make_list(cgi_dirs()))
  47. {
  48.  req = http_get(item:string(d, "/_head.php?_zb_path=../../../../../etc/passwd%00"), port:port);
  49.  res = http_keepalive_send_recv(port:port, data:req);
  50.  if(res == NULL) exit(0);
  51.  if(egrep(pattern:"root:.*:0:[01]:", string:res)){
  52.         security_hole(port);
  53.         exit(0);
  54.         }
  55. }
  56.